home *** CD-ROM | disk | FTP | other *** search
/ Gold Medal Software 3 / Gold Medal Software - Volume 3 (Gold Medal) (1994).iso / prog / dnalib59.arj / DNADEMO.BAS < prev    next >
BASIC Source File  |  1994-02-14  |  13KB  |  398 lines

  1. $INCLUDE "DNALIB.INC"
  2. $LINK "DNALIB.PBL"
  3.  
  4. HelpTextColor% = 14
  5. HelpAttr% = 79
  6.  
  7. IF MouseThere% THEN Mouse% = 1
  8. DIM FDirectory$(500)
  9. DIM FileName$(100)
  10. DIM About$(15)
  11. DIM Help$(19)
  12.  
  13. HorzMenu$(1) = "@Miscellaneous" :HorzMenu$(2) = "Line@Editor"
  14. HorzMenu$(3) = "Sc@reen" :HorzMenu$(4) = "@Help"
  15.  
  16. VertMenu1$(1) = "@New" :VertMenu1$(2) = "@Future" :VertMenu1$(3) = "@Quit"
  17.  
  18. VertInfo1$(1) = "New Routines in DNALIB" :VertInfo1$(2) = "Plans for Future"
  19. VertInfo1$(3) = "Quit DNALIB & Demo of Ask Routine"
  20.  
  21. VertMenu2$(1) = "@UPPER CASE" :VertMenu2$(2) = "@Mixed Case"
  22. VertMenu2$(3) = "@lower case" :VertMenu2$(4) = "@Numbers"
  23. VertMenu2$(5) = "@Any"
  24.  
  25. VertInfo2$(1) = "Demo of LineEdit (UPPER CASE) Routine"
  26. VertInfo2$(2) = "Demo of LineEdit (Mixed Case) Routine"
  27. VertInfo2$(3) = "Demo of LineEdit (lower case) Routine"
  28. VertInfo2$(4) = "Demo of LineEdit (Numbers) Routine"
  29. VertInfo2$(5) = "Demo of LineEdit (All Characters) Routine"
  30.  
  31. VertMenu3$(1) = "@Popwind" :VertMenu3$(2) = "@Dialog"
  32. VertMenu3$(3) = "Scrol@box" :VertMenu3$(4) = "@Scroll"
  33. VertMenu3$(5) = "Save & @Restore" :VertMenu3$(6) = "@Moveable Window"
  34.  
  35. VertInfo3$(1) = "Demo of Popwind Routine" :VertInfo3$(2) = "Demo of Dialog Routine"
  36. VertInfo3$(3) = "Demo of Scrolbox Routine" :VertInfo3$(4) = "Demo of Scroll Routine"
  37. VertInfo3$(5) = "Demo of SaveRest Routine" :VertInfo3$(6) = "Demo of Movewin & Typwrite Routine"
  38.  
  39. VertMenu4$(1) = "@Help" :VertMenu4$(2) = "About @DNALIB"
  40.  
  41. VertInfo4$(1) = "Demo of Scrolbox"
  42. VertInfo4$(2) = "Demo of Multi line Dialog Box"
  43.  
  44. Future$(1) = "I plan to add the following routines"
  45. Future$(2) = "Erik's PBWrite with pulldown menu"
  46. Future$(3) = "and some general routines"
  47.  
  48. About$(1) = "DNA Library for PowerBASIC version 3"
  49. About$(2) = "by Chris Foot"
  50. About$(3) = " "
  51. About$(4) = "DNALIB is totally free and comes with source code"
  52. About$(5) = "for you to modify to your own needs.  Please dont"
  53. About$(6) = "distribute modified copies of DNALIB, if you find"
  54. About$(7) = "a bug please let me know.   If you have any ideas"
  55. About$(8) = "for improvements, or routines for the library.   "
  56. About$(9) = " "
  57. About$(10) = "I can be reached on BASNET in the PowerBASIC echo"
  58. About$(11) = "or at this address                               "
  59. About$(12) = "                               15305 - 117 avenue"
  60. About$(13) = "                                Edmonton, Alberta"
  61. About$(14) = "FAX (403)452-5969                 CANADA, T5M 3X4"
  62.  
  63. Help$(1) = "Scrolling Box Demo"
  64. Help$(2) = "=================="
  65. Help$(3) = "By passing a value of 1 to Scrolling%"
  66. Help$(4) = "you can use SCROLBOX in this manner,"
  67. Help$(5) = "SCROLBOX will size to the longest line"
  68. Help$(6) = "and except a default number of rows"
  69. Help$(7) = "to display, but will fall back to the"
  70. Help$(8) = "number of elements available to it,"
  71. Help$(9) = "to see this in action place DNADEMO.EXE"
  72. Help$(10) = "somewhere in your PATH and run it from"
  73. Help$(11) = "a directory with three or four files in it"
  74. Help$(12) = "and then run the Scrollbox demo under the"
  75. Help$(13) = "Screen choice, then repeat from a directory"
  76. Help$(14) = "with at least twenty files and compare ;)"
  77. Help$(15) = "SCROLBOX will also centre itself on the"
  78. Help$(16) = "screen for you, or let you define a row and"
  79. Help$(17) = "column to start from. It will also centre"
  80. Help$(18) = "the text within the box for you ;)"
  81.  
  82. SCREEN 0
  83.  
  84. TopRow% = 1
  85. Marker% = 99
  86. COLOR 0,3
  87. LOCATE 3,1,0
  88. A$ = REPEAT$(80," DNA for PowerBASIC 3")
  89. PRINT A$
  90. COLOR 14,0
  91. LOCATE 2,1,0
  92. PRINT STRING$(80,205);
  93. LOCATE 24,1,0
  94. PRINT STRING$(80,205);
  95. COLOR 0,7
  96. LOCATE 25,1,0
  97. PRINT SPACE$(80);
  98.  
  99.  
  100. DO
  101.  
  102. HORIZONTALMENU HorzMenu$(),BarSave$,HiLight%,Mouse%,HPointer%,4,112,15,TopRow%,4,Marker%
  103.  
  104. SELECT CASE HPointer%
  105.     CASE 1  'Miscellaneous
  106.       VERTICALMENU VertMenu1$(),VertInfo1$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
  107.       IF LEN(VRtrn$) THEN
  108.       SELECT CASE VRtrn$
  109.         CASE "New"
  110.           BROWSE "DNA.DOC",Mouse%,14,7,17,18,63,31,1,2
  111.         CASE "Future"
  112.           DIALOG Future$(),VRtrn$ + " Features",Mouse%,3,0,0,4,112,1,1
  113.         CASE "Quit"
  114.                   Rtrn% = 0
  115.           ASK "Quit DNALIB Demo",Mouse%,Rtrn%,10,15,0,158,1,2
  116.             IF Rtrn% = 0 THEN
  117.               VRtrn$ = VRtrn$
  118.             ELSE
  119.               VRtrn$ = ""
  120.             END IF
  121.       END SELECT
  122.       END IF
  123.     CASE 2  'Edit
  124.           VERTICALMENU VertMenu2$(),VertInfo2$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
  125.       IF LEN(VRtrn$) THEN
  126.         SAVESCREEN BaseScreen$,1,1,25,80,0
  127.         LOCATE 25, 8, 0
  128.         PRINT "Editing Keys = INSERT  DEL  ESC  HOME  END  BACKSPACE  ARROWKEYS";
  129.         SELECT CASE VRtrn$
  130.         CASE "UPPER CASE"
  131.           Allow$ = " ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  132.           Text$ = "                                         "
  133.           Title$ = VRtrn$ + " Only"
  134.           Fill% = 176 :Row% = 12 :Col% = 20
  135.           POPWIND Title$,11,18,13,62,112,1,1
  136.           LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
  137.  
  138.         CASE "Mixed Case"
  139.           Allow$ = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
  140.           Text$ = "                                         "
  141.           Title$ = VRtrn$ + " Characters"
  142.           Fill% = 176 :Row% = 12 :Col% = 20
  143.           POPWIND Title$,11,18,13,62,112,1,1
  144.           LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
  145.  
  146.         CASE "lower case"
  147.           Allow$ = " abcdefghijklmnopqrstuvwxyz"
  148.           Text$ = "                                         "
  149.           Title$ = VRtrn$ + " Only"
  150.           Fill% = 176 :Row% = 12 :Col% = 20
  151.           POPWIND Title$,11,18,13,62,112,1,1
  152.           LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
  153.  
  154.         CASE "Numbers"
  155.           Allow$ = "1234567890"
  156.           Text$ = "                                         "
  157.           Title$ = VRtrn$ + " Only"
  158.           Fill% = 176 :Row% = 12 :Col% = 20
  159.           POPWIND Title$,11,18,13,62,112,1,1
  160.           LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
  161.  
  162.         CASE "Any"
  163.           Allow$ = " ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890-=`~!@#$%^&*()_+}{[]:;'?><,./\|"
  164.           Text$ = "                                         "
  165.           Title$ = VRtrn$ + " Characters"
  166.           Fill% = 176 :Row% = 12 :Col% = 20
  167.           POPWIND Title$,11,18,13,62,112,1,1
  168.           LINEEDIT Allow$,Text$,Mouse%,MouseRow%,MouseCol%,Fill%,Row%,Col%,Editkey%,14
  169.         END SELECT
  170.         RESTORESCREEN BaseScreen$,1,1
  171.         Mess$(1) = "You Entered >" + RTRIM$(Text$) + "<"
  172.         DIALOG Mess$(),VRtrn$,Mouse%,1,0,0,4,112,1,1
  173.       END IF
  174.     CASE 3  'Screen
  175.           VERTICALMENU VertMenu3$(),VertInfo3$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
  176.       IF LEN(VRtrn$) THEN
  177.       SELECT CASE VRtrn$
  178.         CASE "Popwind"
  179.           SAVESCREEN BaseScreen$,1,1,25,80,0
  180.           tr% = 12 :lc% = 28 :br% = 14 :rc% = 53
  181.           FOR i% = 1 TO 10
  182.             POPWIND "",tr%,lc%,br%,rc%,112,0,1
  183.             DECR tr% :INCR br% :DECR lc%,3 :INCR rc%,3
  184.             FOR j% = 1 TO 10000
  185.             NEXT j%
  186.           NEXT i%
  187.           DELAY .5
  188.           FOR l% = 1 TO 2
  189.             FOR k% = 1 TO 5
  190.             fg% = 15 :bg% = k% :bdr% = k% :shd% = 0
  191.             IF l% = 2 THEN shd% = 1
  192.                       MakeByte DAttr%,fg%,bg%
  193.               POPWIND "",5,14,21,68,DAttr%,shd%,bdr%
  194.               DELAY .6
  195.             NEXT k%
  196.           NEXT l%
  197.           DELAY .6
  198.           tr% = 3 :lc% = 1 :br% = 23 :rc% = 80
  199.           FOR i% = 1 TO 10
  200.             POPWIND "",tr%,lc%,br%,rc%,112,0,1
  201.             INCR tr% :DECR br% :INCR lc%,3 :DECR rc%,3
  202.             FOR j% = 1 TO 2000
  203.             NEXT j%
  204.           NEXT i%
  205.           RESTORESCREEN BaseScreen$,1,1
  206.         CASE "Dialog"
  207.           DMess$(1) = "Dialog will dynamicaly size to the message you want to"
  208.           DMess$(2) = "display. And will allow you either to centre it on the"
  209.           DMess$(3) = "screen or place it anywhere you like."
  210.           DMess$(4) = "It will centre the text in the box for you as well."
  211.           DMess$(5) = "Dialog saves the area under the box and then waits"
  212.           DMess$(6) = "for a key press before it restores the screen."
  213.           DIALOG DMess$(),"Dialog box Demo",Mouse%,1,0,0,0,116,1,1
  214.                   DELAY .2
  215.           DIALOG DMess$(),"Dialog box Demo",Mouse%,2,4,4,0,116,1,1
  216.                   DELAY .2
  217.           DIALOG DMess$(),"Dialog box Demo",Mouse%,3,0,0,0,116,1,1
  218.         CASE "Scrolbox"
  219.           i% = 1
  220.           FDirectory$(i%) = DIR$("*.*",16)
  221.           DO
  222.             INCR i%
  223.             FDirectory$(i%) = DIR$
  224.             IF i% = 500 THEN EXIT LOOP
  225.           LOOP WHILE FDirectory$(i%) <> ""
  226.           SCROLLBOX FDirectory$(),TagList$,"Files",Mouse%,10,4,1,0,15,14,31,0,0,1,2
  227.           IF TagList$ = "" THEN
  228.             Mess$(1) = "You Pressed ESC key"
  229.             DIALOG Mess$(),"",Mouse%,1,0,0,4,112,1,1
  230.           ELSEIF TagList$ = "EMPTY" THEN
  231.             Mess$(1) = "No Files Tagged"
  232.             DIALOG Mess$(),"",Mouse%,1,0,0,4,112,1,1
  233.           ELSE
  234.             a% = 0
  235.             Tag% = 4
  236.             Temp$ = LTRIM$(TagList$,CHR$(Tag%))
  237.               DO
  238.             INCR a%
  239.             b% = INSTR(Temp$,ANY CHR$(Tag%))
  240.               IF b% = 0 THEN
  241.                 FileName$(a%) = Temp$
  242.               ELSE
  243.                 FileName$(a%) = LEFT$(Temp$,b% - 1)
  244.               END IF
  245.             Temp$ = LTRIM$(Temp$,FileName$(a%))
  246.             Temp$ = LTRIM$(Temp$,CHR$(Tag%))
  247.               LOOP UNTIL FileName$(a%) = ""
  248.               IF a% THEN
  249.                         FOR i% = 1 TO a%
  250.                           BROWSE FileName$(i%),Mouse%,14,5,5,20,75,31,1,2
  251.                         NEXT i%
  252.               END IF
  253.           END IF
  254.         CASE "Scroll"
  255.           SCROLL "Scroll a message in both Directions ",1,0,25,112
  256.           SCROLL "Scroll a message in both Directions ",1,1,25,112
  257.         CASE "Save & Restore"
  258.           SAVESCREEN BaseScreen$,1,1,25,80,0
  259.           DELAY .5
  260.           SAVESCREEN Screen1$,4,2,12,39,0
  261.           POPWIND "Window 1",4,2,12,39,78,0,1
  262.           SAVESCREEN Window1$,4,2,12,39,0
  263.           DELAY .5
  264.           SAVESCREEN Screen2$,4,42,12,79,0
  265.           POPWIND "Window 2",4,42,12,79,31,0,2
  266.           SAVESCREEN Window2$,4,42,12,79,0
  267.           DELAY .5
  268.           SAVESCREEN Screen3$,14,2,22,39,0
  269.           POPWIND "Window 3",14,2,22,39,44,0,3
  270.           SAVESCREEN Window3$,14,2,22,39,0
  271.           DELAY .5
  272.           SAVESCREEN Screen4$,14,42,22,79,0
  273.           POPWIND "Window 4",14,42,22,79,110,0,4
  274.           SAVESCREEN Window4$,14,42,22,79,0
  275.           DELAY .5
  276.           SAVESCREEN Screen5$,5,5,21,77,0
  277.           POPWIND "Window 5",5,5,21,77,14,0,2
  278.           SAVESCREEN Window5$,5,5,21,77,0
  279.           DELAY .5
  280.           RESTORESCREEN Screen5$,5,5
  281.           DELAY .5
  282.           RESTORESCREEN Screen4$,14,42
  283.           DELAY .5
  284.           RESTORESCREEN Screen1$,4,2
  285.           DELAY .5
  286.           RESTORESCREEN Screen3$,14,2
  287.           DELAY .5
  288.           RESTORESCREEN Screen2$,4,42
  289.           DELAY .5
  290.           FOR i% = 1 TO 5
  291.             RESTORESCREEN Window1$,4,2
  292.             RESTORESCREEN Window2$,4,42
  293.             RESTORESCREEN Window3$,14,2
  294.             RESTORESCREEN Window4$,14,42
  295.             DELAY .1
  296.             RESTORESCREEN Window2$,4,2
  297.             RESTORESCREEN Window3$,4,42
  298.             RESTORESCREEN Window4$,14,2
  299.             RESTORESCREEN Window1$,14,42
  300.             DELAY .1
  301.             RESTORESCREEN Window3$,4,2
  302.             RESTORESCREEN Window4$,4,42
  303.             RESTORESCREEN Window1$,14,2
  304.             RESTORESCREEN Window2$,14,42
  305.             DELAY .1
  306.             RESTORESCREEN Window4$,4,2
  307.             RESTORESCREEN Window1$,4,42
  308.             RESTORESCREEN Window2$,14,2
  309.             RESTORESCREEN Window3$,14,42
  310.             DELAY .1
  311.             RESTORESCREEN Window1$,4,2
  312.             RESTORESCREEN Window2$,4,42
  313.             RESTORESCREEN Window3$,14,2
  314.             RESTORESCREEN Window4$,14,42
  315.             DELAY .1
  316.           NEXT i%
  317.           RESTORESCREEN Window5$,5,5
  318.           DELAY .5
  319.           RESTORESCREEN Window2$,4,42
  320.           DELAY .5
  321.           RESTORESCREEN Window5$,5,5
  322.           DELAY .5
  323.           RESTORESCREEN Window1$,4,2
  324.           DELAY .5
  325.           RESTORESCREEN Window5$,5,5
  326.           DELAY .5
  327.           RESTORESCREEN Window4$,14,42
  328.           DELAY .5
  329.           RESTORESCREEN Window5$,5,5
  330.           DELAY .5
  331.           RESTORESCREEN Window3$,14,2
  332.           DELAY .5
  333.           RESTORESCREEN Window5$,5,5
  334.           DELAY .5
  335.           SAVESCREEN Corner1$,4,2,12,39,0
  336.           SAVESCREEN Corner2$,4,42,12,79,0
  337.           SAVESCREEN Corner3$,14,2,22,39,0
  338.           SAVESCREEN Corner4$,14,42,22,79,0
  339.           RESTORESCREEN Corner4$,4,2
  340.           RESTORESCREEN Corner1$,14,42
  341.           RESTORESCREEN Corner2$,14,2
  342.           RESTORESCREEN Corner3$,4,42
  343.           DELAY 2
  344.           RESTORESCREEN BaseScreen$,1,1
  345.         CASE "Moveable Window"
  346.           DEF SEG = &HB800
  347.           BaseScreen$ = PEEK$(0,4000)
  348.             POPWIND "Moveable Window",10,25,15,54,31,0,1
  349.             DELAY .5
  350.             TYPWRITE "Add some text",11,34,31
  351.             TYPWRITE "use ARROW KEYS to move",12,29,31
  352.             TYPWRITE "window, hit enter to end",13,28,31
  353.             TYPWRITE "Moveable window demo",14,30,31
  354.           SAVESCREEN Window1$,10,25,15,54,0
  355.           MOVEABLEWINDOW BaseScreen$,Window1$,10,25
  356.                   DELAY .5
  357.           Rtrn% = 0
  358.           Text$ = "Do you want to leave the window on screen"
  359.           ASK Text$,Mouse%,Rtrn%,10,15,0,158,1,2
  360.           IF Rtrn% > 0 THEN
  361.             DEF SEG = &HB800
  362.             POKE$ 0,BaseScreen$
  363.             DEF SEG
  364.           END IF
  365.       END SELECT
  366.       END IF
  367.     CASE 4  'Help
  368.           VERTICALMENU VertMenu4$(),VertInfo4$(),VRtrn$,BarSave$,Mouse%,4,HelpTextColor%,HelpAttr%,15,TopRow%,Marker%,HPointer%,112,1,1
  369.       IF LEN(VRtrn$) THEN
  370.       SELECT CASE VRtrn$
  371.         CASE "Help"
  372.           ScrollBox Help$(),Rtrn$,VRtrn$,Mouse%,7,0,3,1,14,HiAttr%,31,0,0,1,1
  373.         CASE "About DNALIB"
  374.           DIALOG About$(),"",Mouse%,3,0,0,1,112,1,1
  375.       END SELECT
  376.       END IF
  377. END SELECT
  378.  
  379. HiLight% = 1
  380.  
  381. IF Been% = 0 THEN
  382.     DIALOG About$(),"",Mouse%,3,0,0,1,112,1,1
  383.   Been% = 1
  384. END IF
  385.  
  386. LOOP UNTIL VRtrn$ = "Quit"
  387.  
  388. DELAY .5
  389. COLOR 7,0
  390. CLS
  391.  
  392. END
  393.  
  394.  
  395.  
  396.  
  397.  
  398.